package com.ruoyi.iot.mapper;

import com.ruoyi.iot.domain.entity.DeviceHealthScore;
import java.time.LocalDateTime;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 健康评分Mapper
 */
@Mapper
public interface DeviceHealthScoreMapper {

    /**
     * 批量插入或更新评分数据。
     *
     * @param scores 评分列表
     * @return 影响行数
     */
    int upsertBatch(@Param("list") List<DeviceHealthScore> scores);

    /**
     * 查询指定时间范围内的评分。
     *
     * @param deviceId 设备编号
     * @param start    起始时间
     * @param end      截止时间
     * @return 评分列表
     */
    List<DeviceHealthScore> selectByRange(@Param("deviceId") String deviceId,
                                          @Param("start") LocalDateTime start,
                                          @Param("end") LocalDateTime end);

    /**
     * 查询指定设备最新一条评分记录。
     *
     * @param deviceId 设备编号
     * @return 最新评分，未命中数据时返回 null
     */
    DeviceHealthScore selectLatestOne(@Param("deviceId") String deviceId);
}